#ifndef BOXCOLLIDER_H
#define BOXCOLLIDER_H

#include "types/Transform2D.h"
#include "types/Vector2D.h"
#include "components/Collider.h"
#include "components/colliders/CircleCollider.h"
#include "components/colliders/BoxCollider.h"
#include "core/GameObject.h"

namespace SolidityEngine{

class BoxCollider : public Collider
{
    Rect _bounds;
    Vector2D _offset;

    public:
        BoxCollider(const Rect& bounds = Rect(-5,-5,10,10), const Vector2D& offset=Vector2D(0,0));
        virtual ~BoxCollider();

        Rect Bounds() const {return _bounds;};
        Rect& Bounds() {return _bounds;};

    private:
        Vector2D _GetCenter() const;
        Rect _GetBounds() const;
        Collision_ptr _Test(Collider* collider);
        BoxCollider* _Clone();
};

}

#endif // BOXCOLLIDER_H
